#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1e6 + 10;

int n, p;
int arr[N];

int main()
{
    cin >> n >> p;
    for (int i = 0; i < n; i++) cin >> arr[i];
    sort(arr, arr + n);

    int left = 0, right = 0, ret = 0;
    while (right < n)
    {
        while (arr[right] - arr[left] > p*2)
        {
            left++;
        }
        ret = max(ret, right - left + 1);
        right++;
    }

    cout << ret << endl;

    return 0;
}


//#include <iostream>
//#include <string>
//
//using namespace std;
//
//string s;
//
//int main() {
//    cin >> s;
//    int n = s.size();
//    int ret = -1;
//    for (int i = 0; i < n; i++) 
//    {
//        if (i + 1 < n && s[i] == s[i + 1])
//        {
//            ret = 2;
//            break;
//        }
//        if (i + 2 < n && s[i] == s[i + 2])
//        {
//            ret = 3;
//        }
//    }
//    cout << ret << endl;
//
//    return 0;
//}